﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;

using WCFMINERP.Contracts.DataContracts;


namespace WCFMINERP.Contracts.InterFaces
{
    [ServiceContract]
    public  interface IShop
    {
        /// <summary>
        /// 影楼通过登录名获取相关信息
        /// </summary>
        /// <param name="ftpLoginName"></param>
        /// <param name="ftpLoginPwd"></param>
        /// <returns></returns>
        [OperationContract]
        ShopInfo GetShopInfoA(string ftpLoginName, string ftpLoginPwd,string ShaCode);
        /// <summary>
        /// 影楼通过登录名获取相关信息
        /// </summary>
        /// <param name="ftpLoginName"></param>
        /// <param name="ftpLoginPwd"></param>
        /// <returns></returns>
        [OperationContract]
        ShopInfo GetShopInfo(string ftpLoginName, string ftpLoginPwd);
        /// <summary>
        /// 检查是否更新
        /// </summary>
        /// <param name="clientVersion"></param>
        /// <returns></returns>
        [OperationContract]
        bool CheckUpdate(string clientVersion,int shopId);

        /// <summary>
        /// 获取最新版本
        /// </summary>
        /// <returns></returns>
        [OperationContract]
        VersionInfo GetCurrentVersion(int shopId);
        
        /// <summary>
        /// 获取要更新的文件
        /// </summary>
        /// <returns></returns>
        [OperationContract]
        TransferFileInfo GetFile();

        /// <summary>
        /// 获取最新的产品信息
        /// </summary>
        /// <param name="shopId"></param>
        /// <returns></returns>
        [OperationContract]
        List<ShopProductInfo> GetProductFile(int shopId, out List<PaperFaceInfo> paperFaceInfo, out List<PaperTypeInfo> paperTypeInfo, out List<CommonChargeItemInfo> commonChargeItemInfo);
        /// <summary>
        /// 注册新用户
        /// </summary>
        /// <param name="inUserID"></param>
        /// <param name="inPwd"></param>
        /// <param name="inShacode"></param>
        /// <returns></returns>
        [OperationContract]
        int RegisterNewUser(string inUserID, string inPwd, string inShacode);
        /// <summary>
        /// 更改密码
        /// </summary>
        /// <param name="inUserID"></param>
        /// <param name="inOldPwd"></param>
        /// <param name="inShacode"></param>
        /// <param name="inNewPwd"></param>
        /// <returns></returns>
        [OperationContract]
        int ChangeUserPwd(string inUserID, string inOldPwd, string inShacode, string inNewPwd);
        

    }
}
